package asientos;

import java.math.BigDecimal;

import usuarios.Usuario;

/**
 * Esta clase representa un asiento.
 */
public class Asiento {
	private String codigo;
	private BigDecimal precio;
	private ClaseDeAsiento clase;
	private String ubicacion;
	private String estado;
	
	/* *************************************************
	 * CONSTRUCTORS
	 **************************************************/
	public Asiento(String codigo, BigDecimal precioOriginal, ClaseDeAsiento clase, String ubicacion, String estado) {
		this.setCodigo(codigo).setPrecio(precioOriginal).setClase(clase).setUbicacion(ubicacion).setEstado(estado);
	}
	
	/* *************************************************
	 * ACCESSORS
	 **************************************************/
	
	public String getCodigo() {
		return codigo;
	}
	private Asiento setCodigo(String codigo) {
		this.codigo = codigo;
		return this;
	}

	public String getClase() {
		return this.clase.getNombre();
	}
	private Asiento setClase(ClaseDeAsiento clase) {
		this.clase = clase;
		return this;
	}
	
	public String getUbicacion() {
		return ubicacion;
	}
	private Asiento setUbicacion(String ubicacion) {
		this.ubicacion = ubicacion;
		return this;
	}
	
	public String getEstado() {
		return estado;
	}
	private Asiento setEstado(String estado) {
		this.estado = estado;
		return this;
	}

	public BigDecimal getPrecio() {
		
		return precio;
	}
	
	private Asiento setPrecio(BigDecimal precioOriginal) {
		this.precio = precioOriginal;
		return this;
	}

	public boolean esSuperOferta() {
		return this.clase.esSuperOferta(this);
	}

	public void recargarSegunUsuario(Usuario unUsuario, int unRecargo) {
		if(!unUsuario.tieneCuentaPaga()) {
			this.precio=this.getPrecio().add(new BigDecimal(unRecargo));
		}
	}
}
